// 数据管理模块 - 负责记录的存储和管理
const MAX_RECORDS = 20;

let records = [];

// 从本地存储加载记录
export async function loadRecords() {
  // 检查chrome.storage是否可用
  if (typeof chrome !== 'undefined' && chrome.storage && chrome.storage.local) {
    return new Promise((resolve) => {
      chrome.storage.local.get(['picTextXRecords'], (result) => {
        records = result.picTextXRecords || [];
        resolve(records);
      });
    });
  } else {
    // 在非Chrome扩展环境中使用localStorage作为备选方案
    try {
      const stored = localStorage.getItem('picTextXRecords');
      records = stored ? JSON.parse(stored) : [];
    } catch (e) {
      console.warn('无法从localStorage加载记录:', e);
      records = [];
    }
    return Promise.resolve(records);
  }
}

// 保存记录到本地存储
export function saveRecords() {
  // 检查chrome.storage是否可用
  if (typeof chrome !== 'undefined' && chrome.storage && chrome.storage.local) {
    chrome.storage.local.set({ picTextXRecords: records });
  } else {
    // 在非Chrome扩展环境中使用localStorage作为备选方案
    try {
      localStorage.setItem('picTextXRecords', JSON.stringify(records));
    } catch (e) {
      console.warn('无法保存记录到localStorage:', e);
    }
  }
}

// 添加记录
export function addRecord(record) {
  records.unshift(record); // 添加到数组开头（最新的在最上面）
  
  // 限制记录数量
  if (records.length > MAX_RECORDS) {
    records = records.slice(0, MAX_RECORDS);
  }
  
  saveRecords();
}

// 删除记录
export function deleteRecord(id) {
  records = records.filter(record => record.id !== id);
  saveRecords();
}

// 清空所有记录
export function clearAllRecords() {
  records = [];
  saveRecords();
}

// 获取所有记录
export function getRecords() {
  return records;
}